/*************************************************************************
	> File Name: 011.数组的传参方式.c
	> Author: Maureen 
	> Mail: Maureen@qq.com 
	> Created Time: 三  8/25 12:48:36 2021
 ************************************************************************/

#include <stdio.h>

//一维数组传参
//这种传参方式是允许的，解决传参歧义。
//如void func(int n, int m, int a[], int b[]); 不知道a和b两个数组各自大小
void func(int n, int a[n]) {
    //printf("sizeof(a) = %lu\n", sizeof(a)); //8， 返回的是指针变量的大小，而非数组的大小
    printf("func\n");
    return ;
}

void func1(int *a) {
    printf("func1\n");
    return ;
}

//二维数组的传参方式
void func2(int (*a)[200]) {
    printf("func2\n");
    return ;
}

//三维数组的传参方式
void func3(int (*a)[200][300]) { //或int a[][200][300]
    printf("func3\n");
    return ;
}

int main() {
    int arr[100];
    func(100, arr);

    func1(arr);

    int arr2[100][200];
    func2(arr2);

    int arr3[10][20][30];
    func3(arr3);


    return 0;
}
